﻿#if TASKSUPPORT
using System.Threading.Tasks;
#endif

namespace MugenMvvmToolkit.Interfaces.ViewModels
{
    /// <summary>
    ///     Represents the base interface for dialog view model.
    /// </summary>
    public interface IDialogViewModel : IWindowViewModelBase
    {
#if TASKSUPPORT
        /// <summary>
        ///     Shows the current <see cref="IDialogViewModel" /> as a dialog.
        /// </summary>
        /// <param name="viewNameBinding">The specified name of view binding, if any.</param>        
        Task<bool> ShowDialogAsync(string viewNameBinding = null);
#else
        /// <summary>
        ///     Shows the current <see cref="IDialogViewModel" /> as a dialog.
        /// </summary>
        /// <param name="viewNameBinding">The specified name of view binding, if any.</param>        
        IOperationResult<bool> ShowDialogAsync(string viewNameBinding = null);
#endif

    }
}